home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / tcega.arc / GPWAREA.C < prev    next >
Text File  |  1986-03-08  |  1KB  |  93 lines

  1.  
  2. #include <stdio.h>
  3. #include <dos.h>
  4. #include <mcega.h>
  5.  
  6.   WORKAREA *gdwalist;
  7.   WORKAREA *gdwafull;
  8.  
  9. void gpinitwa()
  10. {
  11.   static WORKAREA area1 =
  12.     {
  13.     0,1,0,0,640,350,0,0,640,350,3,2
  14.     };
  15.  
  16.   gdwalist = NULL;
  17.  
  18.   gdwafull = &area1;
  19.  
  20. }
  21.  
  22. void gptermwa()
  23. {
  24.   register WORKAREA *j;
  25.  
  26.   j = gdwalist;
  27.   while (j != NULL)
  28.     {
  29.     free(j);
  30.     j = (WORKAREA *)j->next;
  31.     }
  32. }
  33.  
  34. WORKAREA *gpgenwa(x,y,w,h)
  35.   unsigned int  x,y,w,h;
  36. {
  37.   extern WORKAREA *calloc();
  38.  
  39.   register WORKAREA *j;
  40.  
  41.   if ((j = calloc(sizeof(WORKAREA),1)) == NULL)
  42.     {
  43.     gpterm();
  44.     perror("GPGENWA: Out of local memory!\n");
  45.     exit(1);
  46.     }
  47.  
  48.   j->device  = 1;
  49.   j->base    = 0;
  50.   j->xorigin = x;
  51.   j->yorigin = y;
  52.   j->width   = w;
  53.   j->height  = h;
  54.   j->x       = 0;
  55.   j->y       = 0;
  56.   j->w       = w;
  57.   j->h       = h;
  58.   j->aspect1 = 3;
  59.   j->aspect2 = 2;
  60.   j->next    = (char *)gdwalist;
  61.  
  62.   gdwalist = j;
  63.  
  64.   return(j);
  65. }
  66.  
  67. void gpdelwa(wa)
  68.   WORKAREA *wa;
  69. {
  70.   register WORKAREA *i;
  71.   register WORKAREA *j;
  72.  
  73.   j = gdwalist;
  74.   while (j != NULL)
  75.     {
  76.     if (wa == j)
  77.       {
  78.       if (j == gdwalist)
  79.         {
  80.         gdwalist = (WORKAREA *)j->next;
  81.         }
  82.       else
  83.         {
  84.         i->next = j->next;
  85.         };
  86.       free(j);
  87.       return;
  88.       }
  89.     i = j;
  90.     j = (WORKAREA *)j->next;
  91.     }
  92. }
  93.